'use strict';

//云函数：查询日常账单
const db = uniCloud.database();
const collection = db.collection('money');
const dbCmd = db.command

exports.main = async (event, context) => {
	//event为客户端上传的参数
	let res = null;

	if (!event.startDate || !event.endDate || !event.userId) {
		return {
			code: 0,
			msg: '请检查传参！'
		};
	}
	//日期范围查询，接口新增计算总值返回，传入对应mark只返回支出或收入数据
	res = await collection.aggregate().match({
		userId: event.userId,
		mark: event.mark,
		date: dbCmd.gte(event.startDate).and(dbCmd.lte(event.endDate))
	}).sort({
		date: 1
	}).end();


	/* 数据库查询出来的res数据是一个对象,其中data是查询结果 
	{
		affectedDocs: 5,
		data: []
	}
	*/

	//返回数据给客户端
	if (res) {
		let total = 0;
		for (let i = 0; i < res.data.length; i++) {
			// 解决小数损失精度问题，将金额乘以100保证没有小数
			total += res.data[i].money * 100;
		}

		return {
			code: 1,
			msg: '查询成功',
			data: {
				total: total / 100,
				list: res.data
			}
		};
	} else {
		return {
			code: 0,
			msg: '查询失败'
		};
	}
};
